﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Services;

public partial class Artigo_VincularArtigo : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["Usuario"] == null || Session["TipoUsuario"] == null)
            Response.Redirect("../Login.aspx");
        if (Session["Evento"] == null)
            Response.Redirect("../DefaultAG.aspx");
        if (Session["TipoUsuario"].ToString() != "Administrador Geral")
            Response.Redirect("../Default.aspx");
    }
    [WebMethod]
    public static Resultado<Avaliador> getAvaliador(int pagina, string id)
    {
        int i = (pagina - 1) * 4;
        DataClassesDataContext dc = new DataClassesDataContext();
        Resultado<Avaliador> retorno = new Resultado<Avaliador>();
        List<Avaliador> listaAvaliacaoArtigo = dc.Avaliadors.Where(p => p.aceito.Equals(true) && p.idEvento.Equals(new Guid(System.Web.HttpContext.Current.Session["Evento"].ToString()))).ToList();
        retorno.Data = listaAvaliacaoArtigo.Skip(i).Take(4).ToList();
        retorno.TotalCount = listaAvaliacaoArtigo.Count();
        return retorno;
    }
    [WebMethod]
    public static Resultado<Artigo> getArtigo(int pagina, string nome)
    {
        int i = (pagina - 1) * 4;
        DataClassesDataContext dc = new DataClassesDataContext();
        Resultado<Artigo> retorno = new Resultado<Artigo>();
        List<Artigo> listaArtigos = dc.Artigos.Where(p => p.titulo.Contains(nome) || p.descricao.Contains(nome) && p.idEvento.Equals(new Guid(System.Web.HttpContext.Current.Session["Evento"].ToString()))).OrderBy(p => p.titulo).ToList();
        retorno.Data = listaArtigos.Skip(i).Take(4).ToList();
        retorno.TotalCount = listaArtigos.Count();
        return retorno;
    }
    [WebMethod]
    public static bool vincular(string idAvaliador, string idArtigo)
    {
        AvaliacaoArtigo aa = new AvaliacaoArtigo();
        Artigo a = Artigo.getArtigoById(new Guid(idArtigo));
        aa.avaliado = false;
        aa.avaliadorVinculado = true;
        aa.comentarioGeral = "";
        aa.id = Guid.NewGuid();
        aa.idArtigo = new Guid(idArtigo);
        aa.idAvaliador = new Guid(idAvaliador);
        aa.idEvento = new Guid(System.Web.HttpContext.Current.Session["Evento"].ToString());
        return AvaliacaoArtigo.createAvaliacaoArtigo(aa);
    }
    [WebMethod]
    public static bool vinculado(string idAvaliador, string idArtigo)
    {
        return AvaliacaoArtigo.existByAvaliadorArtigo(new Guid(idAvaliador), new Guid(idArtigo));
    }
    //[WebMethod]
    //public static void vincularDesvincular(string id)
    //{
    //    AvaliacaoArtigo.changeAvaliadorVinculado(AvaliacaoArtigo.findAvaliacaoArtigoById(new Guid(id)));
    //}
}